MajorVer=0\r
MinorVer=2\r
Release=3\r
-Build=2\r
+Build=4\r
Debug=0\r
-PreRelease=1\r
+PreRelease=0\r
Special=0\r
Private=0\r
DLL=0\r
[Version Info Keys]\r
CompanyName=GPSBabel Makers\r
FileDescription=GPSBabel Windows Frontend\r
-FileVersion=0.2.3.2\r
-InternalName=GPSBabelGUI-2\r
-LegalCopyright=(C) 2005 Olaf Klein (O.B.Klein@T-Online.de)\r
+FileVersion=0.2.3.4\r
+InternalName=\r
+LegalCopyright=(C) 2005-2006 Olaf Klein (O.B.Klein@T-Online.de)\r
LegalTrademarks=\r
OriginalFilename=GPSBabelGUI.exe\r
ProductName=GPSBabel\r
-ProductVersion=1.2.8-beta01182006\r
+ProductVersion=1.2.8-beta20060420_ds\r
Comments=internal test build\r
[HistoryLists\hlConditionals]\r
Count=1\r
interface\r
\r
uses\r
- Windows, SysUtils, Classes, Messages, Controls, StdCtrls, Inifiles;\r
+ Windows, SysUtils, Classes, Messages, Controls, StdCtrls;\r
\r
const\r
OTypes: array[0..6] of PChar =\r
('unknown', 'integer', 'float', 'string', 'boolean', 'file', 'outfile');\r
\r
gpsbabel_knows_inifile: Boolean = False;\r
- gpsbabel_ini: TInifile = nil;\r
+//gpsbabel_ini: TInifile = nil;\r
\r
resourcestring\r
SGPSBabelURL = 'http://www.gpsbabel.org';\r
gpsbabel_minor, gpsbabel_major, gpsbabel_release: Integer;\r
SGPSBabelGUIVersion: string;\r
CFixedFileinfo: TVSFixedFileInfo;\r
- gpsbabel_inifile: TInifile;\r
\r
const\r
WM_STARTUP = WM_USER + 1;\r
1:\r
opt.format := string(cin);\r
2:\r
- begin\r
- opt.name := string(cin);\r
- s := gpsbabel_ini.ReadString(opt.Format, opt.Name, #01);\r
- if (s <> #01) then\r
- opt.def := StrNew(PChar(s));\r
- end;\r
+ opt.name := string(cin);\r
3:\r
opt.hint := string(cin);\r
4:\r
if (cin^ <> #0) then\r
opt.max := StrNew(cin);\r
end;\r
- \r
+\r
index := index + 1;\r
cin := cend + 1;\r
end;\r
\r
+ if (opt.name = 'snlen') and (opt.gbdef = nil) then\r
+ begin\r
+ opt.gbdef := StrNew('10');\r
+ opt.def := opt.gbdef;\r
+ end;\r
+\r
index := Self.IndexOf(opt.format);\r
if (index >= 0) then\r
list := TStringList(Self.Objects[index])\r
end;\r
end;\r
\r
+(*\r
function Open_gpsbabel_ini(): TInifile;\r
var\r
s: string;\r
else\r
Result := TIniFile.Create(s)\r
end;\r
+*)\r
\r
initialization\r
\r
gpsbabel_exe := SysUtils.ExtractFilePath(ParamStr(0)) + SGPSBabelExeFilename;\r
SGPSBabelGUIVersion := GetFileVersion(ParamStr(0));\r
- gpsbabel_ini := Open_gpsbabel_ini();\r
+//gpsbabel_ini := Open_gpsbabel_ini();\r
\r
end.\r
uses\r
gnugettext, gnugettextDx,\r
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,\r
- StdCtrls, ComCtrls, Buttons, Mask, ExtCtrls,\r
+ StdCtrls, ComCtrls, Buttons, Mask, ExtCtrls, Registry,\r
common, utils;\r
\r
type\r
TfrmFilter = class(TForm)\r
gbTracks: TGroupBox;\r
cbTrackTitle: TCheckBox;\r
- edTrackTitle: TEdit;\r
+ edTrackTitleValue: TEdit;\r
cbTrackSplit: TCheckBox;\r
cbTrackTime: TCheckBox;\r
udTimeHours: TUpDown;\r
edWayptRadiusLon: TEdit;\r
cbTrackRangeTimeZone: TCheckBox;\r
BitBtn2: TBitBtn;\r
+ cbTrackFixes: TCheckBox;\r
+ cbTrackCourse: TCheckBox;\r
+ cbTrackSpeed: TCheckBox;\r
procedure cbTrackTimeClick(Sender: TObject);\r
procedure FormCreate(Sender: TObject);\r
procedure cbTrackTitleClick(Sender: TObject);\r
function AllValid: Boolean;\r
function ValidateNumerical(AEdit: TCustomEdit; AMin, AMax: Extended): Boolean;\r
procedure ChangeCheckBoxesChecked(AComponent: TComponent; Restore: Boolean = False);\r
+ procedure LoadSettingsFromInifile();\r
+ procedure LoadSettingsFromRegistry();\r
+ procedure StoreSettingsToInifile();\r
+ procedure StoreSettingsToRegistry();\r
public\r
{ Public-Deklarationen }\r
function CmdLine: string;\r
gpsbabel_version]);\r
gbTracks.ShowHint := True;\r
end;\r
+\r
+ if not(gpsbabel_knows_inifile) then\r
+ begin\r
+ cbTrackFixes.Enabled := False;\r
+ cbTrackCourse.Enabled := False;\r
+ cbTrackSpeed.Enabled := False;\r
+ end;\r
+//LoadSettingsFromInifile();\r
+ LoadSettingsFromRegistry();\r
end;\r
\r
function TfrmFilter.ValidateNumerical(AEdit: TCustomEdit; AMin, AMax: Extended): Boolean;\r
\r
procedure TfrmFilter.cbTrackTitleClick(Sender: TObject);\r
begin\r
- edTrackTitle.Enabled := cbTrackTitle.Checked;\r
+ edTrackTitleValue.Enabled := cbTrackTitle.Checked;\r
end;\r
\r
function TfrmFilter.CmdLine: string;\r
begin\r
Result := Format('%s -x %s', [Result, 'track']);\r
if cbTrackTitle.Checked then\r
- Result := Format('%s,title="%s"', [Result, edTrackTitle.Text]);\r
+ Result := Format('%s,title="%s"', [Result, edTrackTitleValue.Text]);\r
\r
if cbTrackTime.Checked then\r
begin\r
else\r
dt_bias := 0.0;\r
\r
-\r
if cbTrackStart.Checked then\r
begin\r
dt := Int(dtpTrackStartDate.DateTime) + Frac(dtpTrackStartTime.DateTime) + dt_bias;\r
Result,\r
FormatDateTime('yyyymmddhhnnss', dt)]);\r
end;\r
+ if cbTrackFixes.Checked then\r
+ Result := Format('%s,fix', [Result]);\r
+ if cbTrackCourse.Checked then\r
+ Result := Format('%s,course', [Result]);\r
+ if cbTrackSpeed.Checked then\r
+ Result := Format('%s,speed', [Result]);\r
end;\r
\r
if AnyChecked(gbRoutes) then\r
\r
procedure TfrmFilter.btnOKClick(Sender: TObject);\r
begin\r
- if AllValid then ModalResult := mrOK;\r
+ if AllValid then\r
+ begin\r
+// StoreSettingsToInifile();\r
+ StoreSettingsToRegistry();\r
+ ModalResult := mrOK;\r
+ end;\r
end;\r
\r
procedure TfrmFilter.cbTrackStartClick(Sender: TObject);\r
\r
procedure TfrmFilter.BitBtn2Click(Sender: TObject);\r
begin\r
- WinOpenURL(readme_html_path + '#id274853');\r
+ WinOpenURL(readme_html_path + '#filters');\r
+end;\r
+\r
+procedure TfrmFilter.LoadSettingsFromInifile();\r
+var\r
+ c: TComponent;\r
+ i: Integer;\r
+ l: TStrings;\r
+ s: string;\r
+begin\r
+(*\r
+ l := TStringList.Create;\r
+ try\r
+ gpsbabel_ini.ReadSection('GPSBabelGUI', l);\r
+ for i := 0 to l.Count - 1 do\r
+ begin\r
+ s := l.Strings[i];\r
+ c := SELF.FindComponent('cb' + s);\r
+ if (c <> nil) and (c is TCheckbox) then\r
+ TCheckbox(c).Checked := (gpsbabel_ini.ReadString('GPSBabelGUI', s, '0') <> '0');\r
+ end;\r
+ edTrackTitleValue.Text := gpsbabel_ini.ReadString('track', 'title',\r
+ edTrackTitleValue.Text);\r
+ edRoutesSimplifyMaxPoints.Text := gpsbabel_ini.ReadString('simplify', 'count',\r
+ edRoutesSimplifyMaxPoints.Text);\r
+ finally\r
+ l.Free;\r
+ end;\r
+*)\r
+end;\r
+\r
+procedure TfrmFilter.StoreSettingsToInifile();\r
+var\r
+ i: Integer;\r
+ c: TComponent;\r
+begin\r
+(*\r
+ for i := 0 to SELF.ComponentCount - 1 do\r
+ begin\r
+ c := SELF.Components[i];\r
+ if (c is TCheckBox) then\r
+ begin\r
+ if TCheckBox(c).Checked then\r
+ gpsbabel_ini.WriteString('GPSBabelGUI', Copy(TCheckbox(c).Name, 3, 256), '1')\r
+ else\r
+ gpsbabel_ini.DeleteKey('GPSBabelGUI', Copy(TCheckbox(c).Name, 3, 256));\r
+ end;\r
+ end;\r
+\r
+ if cbTrackTitle.Checked then\r
+ gpsbabel_ini.WriteString('track', 'title', edTrackTitleValue.Text)\r
+ else\r
+ gpsbabel_ini.DeleteKey('track', 'title');\r
+\r
+ if cbRouteSimplify.Checked then\r
+ gpsbabel_ini.WriteString('simplify', 'count', edRoutesSimplifyMaxPoints.Text)\r
+ else\r
+ gpsbabel_ini.DeleteKey('simplify', 'count');\r
+*)\r
+end;\r
+\r
+procedure TfrmFilter.StoreSettingsToRegistry();\r
+var\r
+ i: Integer;\r
+ c: TComponent;\r
+ r: TRegistry;\r
+begin\r
+ r := TRegistry.Create;\r
+ try\r
+ r.RootKey := HKEY_CURRENT_USER;\r
+ if not(r.OpenKey('\SOFTWARE\GPSBabel', True)) then Exit;\r
+\r
+ for i := 0 to SELF.ComponentCount - 1 do\r
+ begin\r
+ c := SELF.Components[i];\r
+ if (c is TCheckbox) then\r
+ r.WriteBool('filter:' + Copy(c.Name, 3, 256), TCheckBox(c).Checked)\r
+ else if (c is TEdit) then\r
+ r.WriteString('filter:' + Copy(c.Name, 3, 256), TEdit(c).Text);\r
+ end;\r
+ finally\r
+ r.Free;\r
+ end;\r
+end;\r
+\r
+procedure TfrmFilter.LoadSettingsFromRegistry();\r
+var\r
+ i: Integer;\r
+ c: TComponent;\r
+ r: TRegistry;\r
+ s: string;\r
+ u: TUpDown;\r
+ \r
+ function ReadString(R: TRegistry; const Key, Def: string): string;\r
+ begin\r
+ if R.ValueExists(Key) then\r
+ Result := R.ReadString(Key)\r
+ else\r
+ Result := Def;\r
+ end;\r
+\r
+begin\r
+ r := TRegistry.Create;\r
+ try\r
+ r.RootKey := HKEY_CURRENT_USER;\r
+ if not(r.OpenKey('\SOFTWARE\GPSBabel', True)) then Exit;\r
+\r
+ for i := 0 to SELF.ComponentCount - 1 do\r
+ begin\r
+ c := SELF.Components[i];\r
+ try\r
+ if (c is TCheckbox) then\r
+ TCheckBox(c).Checked := r.ReadBool('filter:' + Copy(c.Name, 3, 256))\r
+ else if (c is TEdit) then\r
+ begin\r
+ s := ReadString(r, 'filter:' + Copy(c.Name, 3, 256), TEdit(c).Text);\r
+ if HasUpDown(TEdit(c), u) then\r
+ u.Position := StrToInt(s)\r
+ else\r
+ TEdit(c).Text := s;\r
+ end;\r
+ except\r
+ on E: Exception do ;\r
+ end;\r
+ end;\r
+ finally\r
+ r.Free;\r
+ end;\r
end;\r
\r
end.\r
; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!\r
\r
#define Version "1.2.8"\r
-#define Release "-beta20060405"\r
+#define Release "-beta20060420_ds"\r
\r
[Setup]\r
AppName=GPSBabel\r
uses\r
TypInfo, gnugettext, gnugettextDx,\r
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,\r
- StdCtrls, ExtCtrls, ComCtrls, Buttons,\r
+ StdCtrls, ExtCtrls, ComCtrls, Buttons, Registry,\r
Common, delphi;\r
\r
type\r
procedure btnHelpClick(Sender: TObject);\r
procedure FormKeyDown(Sender: TObject; var Key: Word;\r
Shift: TShiftState);\r
+ procedure btnOKClick(Sender: TObject);\r
private\r
{ Private declarations }\r
FOpts: TStringList;\r
function ParseOptsLine(const Line: string; List: TStrings): Integer;\r
procedure SetOpts(AList: TStringList);\r
procedure SetOptsStr(const AValue: string);\r
+ procedure StoreOptionsToInifile();\r
+ procedure StoreOptionsToRegistry();\r
+ procedure LoadSettingsFromRegistry();\r
public\r
{ Public declarations }\r
FFormat: string;\r
chb.Top := xy.y;\r
_xy := SetCaption(chb, dgettext(GPSBabel_Domain, o.Hint));\r
chb.Alignment := taRightJustify;\r
- chb.Checked := False;\r
+// chb.Checked := (gpsbabel_ini.ReadString(o.format, o.name, #1) <> #1);\r
chb.Parent := pnOptions;\r
\r
chb.Hint := SysUtils.Format(_('Short "%s"'), [o.name]);\r
i := btnCancel.Left - btnOK.Left;\r
btnCancel.Left := pnBottom.Width - btnCancel.Width - btnHelp.Left;\r
btnOK.Left := btnCancel.Left - i;\r
+\r
+ LoadSettingsFromRegistry();\r
end;\r
\r
function TfrmOptions.GetOptsStr: string;\r
ModalResult := mrCancel;\r
end;\r
\r
+procedure TfrmOptions.StoreOptionsToInifile();\r
+var\r
+ i: Integer;\r
+ o: POption;\r
+ c: TComponent;\r
+ s, value: string;\r
+begin\r
+(*\r
+ for i := 0 to FOpts.Count - 1 do\r
+ begin\r
+ o := Pointer(FOpts.Objects[i]);\r
+ if (o.chb = nil) then Continue;\r
+\r
+ if o.chb.AllowGrayed then\r
+ begin\r
+ if (o.chb.State = cbGrayed) then\r
+ begin\r
+ gpsbabel_ini.DeleteKey(o.format, o.name);\r
+ Continue;\r
+ end;\r
+ end\r
+ else if not(o.chb.Checked) then\r
+ begin\r
+ gpsbabel_ini.DeleteKey(o.format, o.name);\r
+ Continue;\r
+ end;\r
+\r
+ if (o.edit = nil) then\r
+ begin\r
+ if o.chb.Checked then\r
+ value := '1'\r
+ else\r
+ value := '0';\r
+ end\r
+ else value := GetStrProp(o.edit, 'Text');\r
+ if (o.gbdef <> nil) and (StrPas(o.gbdef) = value) then\r
+ gpsbabel_ini.DeleteKey(o.format, o.name)\r
+ else\r
+ gpsbabel_ini.WriteString(o.format, o.name, value);\r
+ end;\r
+*)\r
+end;\r
+\r
+procedure TfrmOptions.StoreOptionsToRegistry();\r
+var\r
+ i: Integer;\r
+ o: POption;\r
+ c: TComponent;\r
+ s, key, value: string;\r
+ r: TRegistry;\r
+begin\r
+ r := TRegistry.Create;\r
+ try\r
+ r.RootKey := HKEY_CURRENT_USER;\r
+ if not(r.OpenKey('\Software\GPSBabel', True)) then Exit;\r
+\r
+ for i := 0 to FOpts.Count - 1 do\r
+ begin\r
+ o := Pointer(FOpts.Objects[i]);\r
+ if (o.chb = nil) then Continue;\r
+\r
+ key := o.format + ':' + o.name;\r
+\r
+ if o.chb.AllowGrayed then\r
+ begin\r
+ if (o.chb.State = cbGrayed) then\r
+ begin\r
+ r.DeleteValue(key);\r
+ Continue;\r
+ end;\r
+ end\r
+ else if not(o.chb.Checked) then\r
+ begin\r
+ r.DeleteValue(key);\r
+ Continue;\r
+ end;\r
+\r
+ if (o.edit = nil) then\r
+ begin\r
+ if o.chb.Checked then\r
+ value := '1'\r
+ else\r
+ value := '0';\r
+ end\r
+ else value := GetStrProp(o.edit, 'Text');\r
+ if (o.gbdef <> nil) and (StrPas(o.gbdef) = value) then\r
+ r.WriteString(key, '(default)')\r
+ else\r
+ r.WriteString(key, value);\r
+ end;\r
+ finally\r
+ r.Free;\r
+ end;\r
+end;\r
+\r
+procedure TfrmOptions.LoadSettingsFromRegistry();\r
+var\r
+ i: Integer;\r
+ o: POption;\r
+ c: TComponent;\r
+ s, key, value: string;\r
+ r: TRegistry;\r
+ u: TUpDown;\r
+begin\r
+ r := TRegistry.Create;\r
+ try\r
+ r.RootKey := HKEY_CURRENT_USER;\r
+ if not(r.OpenKeyReadOnly('\Software\GPSBabel')) then Exit;\r
+\r
+ for i := 0 to FOpts.Count - 1 do\r
+ begin\r
+ o := Pointer(FOpts.Objects[i]);\r
+ if (o.chb = nil) then Continue;\r
+\r
+ key := o.format + ':' + o.name;\r
+ if not r.ValueExists(key) then Continue;\r
+\r
+ Value := r.ReadString(key);\r
+ if (o.edit = nil) then\r
+ begin\r
+ if o.chb.AllowGrayed then\r
+ begin\r
+ if (value = '1') then\r
+ o.chb.State := cbChecked\r
+ else\r
+ o.chb.State := cbUnChecked;\r
+ end\r
+ else o.chb.Checked := True;\r
+ end\r
+ else\r
+ begin\r
+ o.chb.Checked := True;\r
+ if (value <> '(default)') then\r
+ begin\r
+ if HasUpDown(TEdit(o.edit), u) then\r
+ u.Position := StrToInt(value)\r
+ else\r
+ SetStrProp(o.edit, 'Text', value);\r
+ end;\r
+ o.edit.Enabled := True;\r
+ end;\r
+ end;\r
+ finally\r
+ r.Free;\r
+ end;\r
+end;\r
+\r
+procedure TfrmOptions.btnOKClick(Sender: TObject);\r
+begin\r
+//StoreOptionsToInifile();\r
+ StoreOptionsToRegistry();\r
+end;\r
+\r
end.\r
\r
uses\r
gnugettext,\r
- Windows, SysUtils, Classes, Registry, ShellAPI;\r
+ Windows, SysUtils, Classes, StdCtrls, ComCtrls,\r
+ Registry, ShellAPI;\r
\r
type\r
PBoolean = ^Boolean;\r
\r
function readme_html_path: string;\r
\r
+function HasUpDown(E: TEdit; var UpDown: TUpdown): Boolean;\r
+\r
implementation\r
\r
uses\r
Forms,\r
- StdCtrls,\r
common;\r
\r
function GetShortName(const PathName: string): string;\r
\r
StartupInfo.cb := Sizeof (StartupInfo);\r
StartupInfo.dwFlags := STARTF_USESHOWWINDOW or STARTF_USESTDHANDLES;\r
- StartupInfo.wShowWindow := SW_HIDE and SW_SHOWMINNOACTIVE;\r
+ StartupInfo.wShowWindow := {SW_HIDE or} SW_SHOWMINNOACTIVE;\r
StartupInfo.hStdInput := GetStdHandle (STD_INPUT_HANDLE);\r
StartupInfo.hStdOutput:= hWrite;\r
StartupInfo.hStdError := hWrite;\r
end;\r
\r
s := '';\r
+ Error := 0;\r
\r
repeat\r
Wait_Result := WaitforSingleObject(ProcessInfo.hProcess, 10);\r
if PeekNamedPipe(hRead, nil, 0, nil, @BytesRead, nil) then\r
begin\r
- if (BytesRead > 0) then Application.ProcessMessages;\r
+ if (BytesRead > 0) then\r
+ Application.ProcessMessages;\r
while (BytesRead > 0) do\r
begin\r
BytesDone := BytesRead;\r
s := s + string(buffer);\r
Dec(BytesRead, BytesDone);\r
end;\r
- end;\r
+ end\r
end;\r
until (Wait_Result = WAIT_OBJECT_0);\r
\r
- if not GetExitCodeProcess(ProcessInfo.hProcess, Error) then Error := 0;\r
+ if (Error = 0) then\r
+ if not GetExitCodeProcess(ProcessInfo.hProcess, Error) then Error := 0;\r
\r
if (Error <> 0) and (Error <> 1) then\r
raise eGPSBabelError.CreateFmt(_('"gpsbabel.exe" returned error 0x%x (%d)'), [Error, Error]);\r
Result := SGPSBabelURL + '/readme.html';\r
end;\r
\r
+function HasUpDown(E: TEdit; var UpDown: TUpdown): Boolean;\r
+var\r
+ i: Integer;\r
+ c: TComponent;\r
+ o: TComponent;\r
+begin\r
+ Result := False;\r
+ o := E.Owner;\r
+ for i := 0 to o.ComponentCount - 1 do\r
+ begin\r
+ c := o.Components[i];\r
+ if (c is TUpDown) and (TUpDown(c).Associate = E) then\r
+ begin\r
+ UpDown := TUpDown(c);\r
+ Result := True;\r
+ Exit;\r
+ end;\r
+ end;\r
+end;\r
+\r
+\r
var\r
hMutex: THandle;\r
\r